# 2.编写一个装饰器 exception_handler_decorator，它可以捕获函数执行过程中的异常并打印错误信息。
# 比如以下代码执行的时候会raise错误的，要求使用上装饰器之后不再抛错，但需要打印错误的信息
# def divide(a, b):
#     return a / b
# print(divide(10, 0))

def exception_handler_decorator(fun):
    def inner(*args):
        try:
            return fun(*args)
        except ZeroDivisionError:
            print("除数不能为0")
        except TypeError:
            print("参数的类型错误")
        except Exception as e:
            print(f"错误：{e}")
    return inner


@exception_handler_decorator
def divide(a, b):
    return a / b


if __name__ == "__main__":
    print(divide(10, 0))
    print()
    print(divide(10, 1))
    print()
    print(divide(10,"1"))
